#!/usr/bin/env pyhton
# -*- coding: utf-8 -*-
# Script qui permet de générer une matrice aléatoire et personnalisable à partir des arguments sur la ligne de commande. 
# La matrice est compressée et ensuite décompressée afin de vérifier que les données n'ont pas été endommagées
# Roxane Levy


import huffman
import random


def creerMatrice(nbEtapes, tailleX, tailleY) :
 matrice = []
 for x in range(nbEtapes) : 
  partie = creerGrille(tailleX, tailleY)
  matrice.append(partie)
 return matrice




def creerGrille (largeur, longueur) :
 ligne = []
 grille = []
 for y in range(longueur) :
  ligne = []
  for x in range(largeur) :
   ligne += [random.randint(0,15)]
  grille.append(ligne)
 return grille



from sys import argv
if len(argv) != 5 : 
  exit("arg 1 : le nombre de matrice que l'on va générer\narg 2 : le nombre d'étapes\narg 3 : la largeur de chaque grille\narg 4 : la longueur de chaque grille") 
for x in range(int(argv[1])) :
  h = huffman.Huffman()
  h.matrice = str(creerMatrice(int(argv[2]), int(argv[3]), int(argv[4])) )
  matrice1 = h.matrice
  h.encode()
  matrice_sortie = h.decode()
  if (matrice1 != matrice_sortie) : exit("Erreur")
  else : 
   print "Compression/Décompression : ok"
    


